In computer programming, an API provides building blocks for the development of software and applications.
By analogy to a real-world behavior, an API may continuously evolve based on several parameters such as need, environment, and dependencies with systems. Different versions of an API may be appropriate to different clients based on, for example but without limitation, the needs of the client in terms of execution time or accuracy, or the client's particular data model.
In an exemplary case, in the payments and financials domain, two versions of a Service Invoice Line Item (SILI) API could be configured differently for execution. One version may initially function well for two different clients with similar data models, but over time, one client's data model may evolve, causing performance problems and necessitating a switch from the first version of the SILI API to the second version.